package com.sondon.dev_soceket.netty;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerAdapter;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.timeout.IdleState;
import io.netty.handler.timeout.IdleStateEvent;
/**
 * @Project : Java_C_Socket_Maven
 * @Package : com.sondon.netty
 * @Class : MyIdleHandler.java
 * @Company 广州讯动网络科技有限公司
 * @Author : 蔡文锋
 * @DateTime：2015年4月22日 下午5:40:30
 * @Blog：http://blog.csdn.net/caiwenfeng_for_23
 * @Description : {自定义应用层心跳包实现}
 */
public class MyIdleHandler extends ChannelHandlerAdapter {
	@Override
	public void userEventTriggered(ChannelHandlerContext ctx, Object evt)
			throws Exception {
		if (evt instanceof IdleStateEvent) {
			IdleStateEvent e = (IdleStateEvent) evt;
			if (e.state() == IdleState.READER_IDLE) {
				ctx.close();
				System.out.println("READER_IDLE 读超时");
			} else if (e.state() == IdleState.WRITER_IDLE) {
				ByteBuf buff = ctx.alloc().buffer();
				buff.writeBytes("idle test".getBytes());
				ctx.writeAndFlush(buff);
				System.out.println("WRITER_IDLE 写超时");
			}else if(e.state()==IdleState.ALL_IDLE){
				System.out.println("ALL_IDLE  超时");
			}
		}
	}
}

